package com.mtao.mapper;

import com.mtao.entity.Product;
import com.mtao.dto.ProductDto;
import com.mtao.entity.ProductType;
import com.mtao.dto.ProductTypeDto;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

@Mapper
public interface ProductMapper {
    /**
     * 获取所有产品类型
     * @return
     */

    @Select("select * from product_type")
    List<ProductType> allTypeList();
    /**
     * 获取所有产品类型  带分页
     * @return
     */

    List<ProductType> getProductTypeList(ProductTypeDto productTypeDto);

    /**
     * 添加产品类型
     * @param productType
     */
    @Insert("insert into product_type(name,img,create_time,description)" +
            "values (#{name},#{img},#{createTime},#{description})")
    void addProductType(ProductType productType);

    /**
     * 更新产品类型
     * @param productType
     */
    @Update("update product_type set name=#{name},img=#{img},update_time=#{updateTime},description=#{description} where id=#{id}")
    void updateProductType(ProductType productType);

    /**
     * 批量删除产品类型
     * @param id
     */
    void deleteProductType(List<String> id);
    /**
     * 获取所有产品
     * @return
     */

    List<Product> getProductList(ProductDto ProductDto);

    /**
     * 添加产品
     * @param product
     */

    @Insert("insert into product(name,img,type,username,description,create_time)" +
            "values (#{name},#{img},#{type},#{username},#{description},#{createTime})")
    void addProduct(Product product);


    /**
     * 更新产品
     * @param product
     */
    @Update("update product set name=#{name},img=#{img},type=#{type},username=#{username},description=#{description},update_time=#{updateTime} where id=#{id}")
    void updateProduct(Product product);
    /**
     * 删除产品
     * @param id
     */
    void deleteProduct(List<String> id);

}
